home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / t3_1 / risc_src.lha / risc_sources / xlib / Xresource.cdecl < prev    next >
Text File  |  1990-05-29  |  8KB  |  262 lines

  1. ; Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts,
  2. ; and the Massachusetts Institute of Technology, Cambridge, Massachusetts.
  3. ;
  4. ;                         All Rights Reserved
  5. ;
  6. ; Permission to use, copy, modify, and distribute this software and its 
  7. ; documentation for any purpose and without fee is hereby granted, 
  8. ; provided that the above copyright notice appear in all copies and that
  9. ; both that copyright notice and this permission notice appear in 
  10. ; supporting documentation, and that the names of Digital or MIT not be
  11. ; used in advertising or publicity pertaining to distribution of the
  12. ; software without specific, written prior permission.  
  13. ;
  14. ; DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
  15. ; ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
  16. ; DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
  17. ; ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
  18. ; WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
  19. ; ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
  20. ; SOFTWARE.
  21.  
  22. ;;***************************************************************
  23. ;****************************************************************
  24. ;***                                                          ***
  25. ;***                                                          ***
  26. ;***          X Resource Manager Intrinsics                   ***
  27. ;***                                                          ***
  28. ;***                                                          ***
  29. ;****************************************************************
  30. ;***************************************************************
  31.  
  32.  
  33.  
  34. ;;***************************************************************
  35. ;*
  36. ;* Miscellaneous definitions
  37. ;*
  38. ;***************************************************************
  39.  
  40. (typedef charAP caddr_t)
  41. (const NULL 0)
  42.  
  43. ;;***************************************************************
  44. ;*
  45. ;* ||| Memory Management (move out of here!)
  46. ;*
  47. ;***************************************************************
  48.  
  49. ;extern char *Xpermalloc();
  50.     ;; unsigned int size;   
  51.  
  52. ;;***************************************************************
  53. ;*
  54. ;* Quark Management
  55. ;*
  56. ;***************************************************************
  57.  
  58. (typedef int XrmQuark)
  59. (typedef intAP XrmQuarkList)
  60. (const NULLQUARK 0)
  61.  
  62. (typedef charAP XrmString)
  63. (const NULLSTRING 0)
  64.  
  65. ;; find quark for string, create new quark if none already exists 
  66. ;extern XrmQuark XrmStringToQuark(); ;; name 
  67.     ;; XrmString name; 
  68.  
  69. ;; find string for quark 
  70. ;extern XrmString XrmQuarkToString(); ;; quark 
  71.     ;; XrmQuark name; 
  72.  
  73. ;extern XrmQuark XrmUniqueQuark();
  74.  
  75. ;define XrmStringsEqual(a1, a2) (strcmp(a1, a2) == 0)
  76.  
  77.  
  78. ;;***************************************************************
  79. ;*
  80. ;* Conversion of Strings to Lists
  81. ;*
  82. ;***************************************************************
  83.  
  84. ;extern void XrmStringToQuarkList();
  85.     ;; char        *name;  
  86.     ;; XrmQuarkList     quarks;   ;; RETURN 
  87.  
  88. ;extern void XrmStringToBindingQuarkList();
  89.     ;; char        *name;      
  90.     ;; XrmBindingList   bindings;     ;; RETURN 
  91.     ;; XrmQuarkList     quarks;       ;; RETURN 
  92.  
  93.  
  94. ;;***************************************************************
  95. ;*
  96. ;* Name and Class lists.
  97. ;*
  98. ;***************************************************************
  99.  
  100. (typedef XrmQuark XrmName)
  101. (typedef XrmQuarkList XrmNameList)
  102. ;#define XrmNameToString(name)        XrmQuarkToString(name)
  103. ;#define XrmStringToName(string)        XrmStringToQuark(string)
  104. ;#define XrmStringToNameList(str, name)    XrmStringToQuarkList(str, name)
  105.  
  106. (typedef XrmQuark XrmClass)
  107. (typedef XrmQuarkList XrmClassList)
  108. ;#define XrmClassToString(class)        XrmQuarkToString(class)
  109. ;#define XrmStringToClass(class)        XrmStringToQuark(class)
  110. ;#define XrmStringToClassList(str,class)    XrmStringToQuarkList(str, class)
  111.  
  112.  
  113.  
  114. ;;***************************************************************
  115. ;*
  116. ;* Resource Representation Types and Values
  117. ;*
  118. ;***************************************************************
  119.  
  120. (typedef XrmQuark XrmRepresentation)
  121. ;#define XrmStringToRepresentation(string)   XrmStringToQuark(string)
  122. ;#define XrmRepresentationToString(type)   XrmQuarkToString(type)
  123.  
  124. (typedef (struct
  125.     (unsignedint    size)
  126.     (caddr_t        addr)
  127. ) XrmValue)
  128. (typedef (XrmValue *) XrmValuePtr)
  129.  
  130.  
  131. ;;***************************************************************
  132. ;*
  133. ;* Resource Manager Functions
  134. ;*
  135. ;***************************************************************
  136.  
  137. (const  XrmBindTightly 0)
  138. (const  XrmBindLoosely 1)
  139. (typedef int XrmBinding)
  140. (typedef intAP XrmBindingList)
  141. (typedef (struct) _XrmHashBucketRec)
  142. (typedef (_XrmHashBucketRec *) XrmHashBucket)
  143. (typedef (XrmHashBucket *) XrmHashTable)
  144. (typedef (XrmHashTable 1) XrmSearchList)
  145. (typedef (_XrmHashBucketRec *) XrmDatabase)
  146. (typedef (XrmDatabase *) XrmDatabaseP)
  147.  
  148.  
  149. ;extern void XrmInitialize();
  150.  
  151. ;extern void XrmQPutResource();
  152.     ;; XrmDatabase        *pdb;    
  153.     ;; XrmBindingList       bindings;   
  154.     ;; XrmQuarkList        quarks;     
  155.     ;; XrmRepresentation    type;       
  156.     ;; XrmValue            *value;    
  157.  
  158. ;extern void XrmPutResource();
  159.     ;; XrmDatabase        *pdb;       
  160.     ;; char            *specifier; 
  161.     ;; char            *type;      
  162.     ;; XrmValue            *value;     
  163.  
  164. ;extern void XrmQPutStringResource();
  165.     ;; XrmDatabase        *pdb;       
  166.     ;; XrmBindingList       bindings;   
  167.     ;; XrmQuarkList        quarks;     
  168.     ;; char            *str;       
  169.  
  170. ;extern void XrmPutStringResource();
  171.     ;; XrmDatabase        *pdb;       
  172.     ;; char            *specifier; 
  173.     ;; char            *str;       
  174.  
  175. ;extern void XrmPutLineResource();
  176.     ;; XrmDatabase        *pdb;       
  177.     ;; char            *line;    
  178.  
  179. ;extern  XrmQGetResource();
  180.     ;; XrmDatabase        db;        
  181.     ;; XrmNameList        names;      
  182.     ;; XrmClassList        classes;    
  183.     ;; XrmRepresentation    *type;        ;; RETURN 
  184.     ;; XrmValue            *value;       ;; RETURN 
  185.  
  186. ;extern Bool XrmGetResource();
  187.     ;; XrmDatabase        db;        
  188.     ;; char            *name_str;  
  189.     ;; char            *class_str; 
  190.     ;; char            *type;        ;; RETURN 
  191.     ;; XrmValue            *value;       ;; RETURN 
  192.  
  193. ;extern Bool XrmQGetSearchList();
  194.     ;; XrmDatabase        db;        
  195.     ;; XrmNameList        names;      
  196.     ;; XrmClassList        classes;    
  197.     ;; XrmSearchList        searchList;   ;; RETURN 
  198.     ;; int            listLength; 
  199.  
  200. ;extern Bool XrmQGetSearchResource();
  201.     ;; SearchList        searchList; 
  202.     ;; XrmName            name;       
  203.     ;; XrmClass            class;      
  204.     ;; XrmRepresentation    *type;        ;; RETURN 
  205.     ;; XrmValue            *value;       ;; RETURN 
  206.  
  207. ;;***************************************************************
  208. ;*
  209. ;* Resource Database Management
  210. ;*
  211. ;***************************************************************
  212.  
  213. ;extern XrmDatabase XrmGetFileDatabase();
  214.     ;; char        *filename;  
  215.  
  216. ;extern XrmDatabase XrmGetStringDatabase();
  217.     ;; char        *data;        ;;  null terminated string 
  218.  
  219. ;extern void XrmPutFileDatabase();
  220.     ;; XrmDatabase  db;        
  221.     ;; char        *filename   
  222.  
  223. ;extern void XrmMergeDatabases();
  224.     ;; XrmDatabase  new;    
  225.     ;; XrmDatabase  *into;        ;; RETURN 
  226.  
  227.  
  228.  
  229.  
  230. ;;***************************************************************
  231. ;*
  232. ;* Command line option mapping to resource entries
  233. ;*
  234. ;***************************************************************
  235.  
  236. (const XrmoptionNoArg 0)    ;; Value is specified in OptionDescRec.value
  237. (const XrmoptionIsArg 1)    ;; Value is the option string itself
  238. (const XrmoptionStickyArg 2);; Value is characters immediately following option
  239. (const XrmoptionSepArg 3)   ;; Value is next argument in argv
  240. (const XrmoptionResArg 4)   ;; Resource and value in next argument in argv
  241. (const XrmoptionSkipArg 5)  ;; Ignore this option and the next argument in argv
  242. (const XrmoptionSkipLine 6) ;; Ignore this option and the rest of argv
  243.  
  244. (typedef int XrmOptionKind)
  245.  
  246. (typedef (struct
  247.     (charP option)                ;; Option abbreviation in argv        
  248.     (charP specifier)            ;; Resource specifier            
  249.     (XrmOptionKind argKind)        ;; Which style of option it is        
  250.     (caddr_t value)            ;; Value to provide if XrmoptionNoArg   
  251. ) XrmOptionDescRec)
  252.  
  253. (typedef (XrmOptionDescRec *) XrmOptionDescList)
  254.  
  255. ;extern void XrmParseCommand();
  256.     ;; XrmDatabase        *pdb;        
  257.     ;; XrmOptionDescList    options;        
  258.     ;; int            num_options;    
  259.     ;; char            *prefix;        
  260.     ;; int            *argc;        
  261.     ;; char            **argv;        
  262.